home *** CD-ROM | disk | FTP | other *** search
/ Aminet 31 / Aminet 31 (1999)(Schatztruhe)[!][Jun 1999].iso / Aminet / util / libs / IdentifyDev.lha / Identify / developer / include / libraries / identify.h next >
Encoding:
C/C++ Source or Header  |  1999-04-23  |  17.5 KB  |  371 lines

  1. /*
  2. **      $VER: identify.i 11.0 (23.04.99)
  3. **
  4. **      identify.library definitions
  5. **
  6. **      (C) Copyright 1996-99 Richard Koerber
  7. **      All Rights Reserved.
  8. */
  9.  
  10. #ifndef LIBRARIES_IDENTIFY_H
  11. #define LIBRARIES_IDENTIFY_H    (1)
  12.  
  13. #ifndef EXEC_TYPES_H
  14. #include <exec/types.h>
  15. #endif
  16.  
  17. #ifndef EXEC_LIBRARIES_H
  18. #include <exec/libraries.h>
  19. #endif
  20.  
  21. #ifndef UTILITY_TAGITEM_H
  22. #include <utility/tagitem.h>
  23. #endif
  24.  
  25. #define _IDTAGS (0xCD450000)
  26.  
  27. /* ------------------------------------------------------------------------ *
  28. **  Generic library informations
  29. */
  30. #define IDENTIFYVERSION (11)
  31.  
  32. struct IdentifyBase {
  33.   struct  Library ifyb_LibNode;
  34. };
  35.  
  36. #define IDENTIFYBUFLEN  (50)            /*  default buffer length */
  37.  
  38. /* ------------------------------------------------------------------------ *
  39. **  Expansion() tags
  40. */
  41. #define IDTAG_ConfigDev   (_IDTAGS+0x00)  /* (struct ConfigDev *) ConfigDev */
  42.                                           /*  structure to be evaluated */
  43. #define IDTAG_ManufID     (_IDTAGS+0x01)  /* UWORD manufacturer ID if no */
  44.                                           /*  ConfigDev is available */
  45. #define IDTAG_ProdID      (_IDTAGS+0x02)  /* UBYTE product ID if no */
  46.                                           /*  ConfigDev is available */
  47. #define IDTAG_StrLength   (_IDTAGS+0x03)  /* UWORD of maximum buffer length, */
  48.                                           /*  including termination. Default */
  49.                                           /*  is 50. */
  50. #define IDTAG_ManufStr    (_IDTAGS+0x04)  /* STRPTR of manufacturer name */
  51.                                           /*  puffer, or NULL */
  52. #define IDTAG_ProdStr     (_IDTAGS+0x05)  /* STRPTR of product name */
  53.                                           /*  puffer, or NULL */
  54. #define IDTAG_ClassStr    (_IDTAGS+0x06)  /* STRPTR of product class */
  55.                                           /*  puffer, or NULL */
  56. #define IDTAG_DeadStr     (_IDTAGS+0x07)  /* STRPTR deadend or recoverable alert? */
  57. #define IDTAG_SubsysStr   (_IDTAGS+0x08)  /* STRPTR alert subsystem */
  58. #define IDTAG_GeneralStr  (_IDTAGS+0x09)  /* STRPTR alert general cause */
  59. #define IDTAG_SpecStr     (_IDTAGS+0x0A)  /* STRPTR alert specific cause */
  60. #define IDTAG_FuncNameStr (_IDTAGS+0x0B)  /* STRPTR function name */
  61. #define IDTAG_Expansion   (_IDTAGS+0x0C)  /* (struct ConfigDev **) for a */
  62.                                           /*  complete expansion check. Init */
  63.                                           /*  the variable with NULL. */
  64. #define IDTAG_Secondary   (_IDTAGS+0x0D)  /* BOOL warn for secondary expansion */
  65.                                           /*  boards (defaults to FALSE) */
  66. #define IDTAG_ClassID     (_IDTAGS+0x0E)  /* ULONG * class ID of the provided */
  67.                                           /*  expansion board (see below) [V8] */
  68. #define IDTAG_Localize    (_IDTAGS+0x0F)  /* BOOL return localized strings */
  69.                                           /*  (defaults to TRUE) [V8] */
  70. #define IDTAG_NULL4NA     (_IDTAGS+0x10)  /* BOOL return NULL for not available */
  71.                                           /*  else return a string (defaults to */
  72.                                           /*  FALSE) [V8] */
  73.  
  74. /* ------------------------------------------------------------------------ *
  75. **  Hardware description types
  76. */
  77. #define IDHW_SYSTEM       (0)     /*  System (Amiga,DraCo,...)            [V2] */
  78. #define IDHW_CPU          (1)     /*  CPU (68000,68010,...,68060) */
  79. #define IDHW_FPU          (2)     /*  FPU (---,68881,68882,68040,68060) */
  80. #define IDHW_MMU          (3)     /*  MMU (---,68852,68030,68040,68060) */
  81. #define IDHW_OSVER        (4)     /*  OS Version (V*.*) */
  82. #define IDHW_EXECVER      (5)     /*  Exec Version (V*.*) */
  83. #define IDHW_WBVER        (6)     /*  Workbench Version (---,V*.*) */
  84. #define IDHW_ROMSIZE      (7)     /*  OS ROM Size (*KB, *MB) */
  85. #define IDHW_CHIPSET      (8)     /*  Chipset (OCS,ECS,AGA,DraCo) */
  86. #define IDHW_GFXSYS       (9)     /*  Graphic OS (AmigaOS, CyberGraphX, ...) */
  87. #define IDHW_CHIPRAM      (10)    /*  All Chip RAM (*KB, *MB, *GB) */
  88. #define IDHW_FASTRAM      (11)    /*  All Fast RAM (*KB, *MB, *GB) */
  89. #define IDHW_RAM          (12)    /*  All Total RAM (*KB, *MB, *GB) */
  90. #define IDHW_SETPATCHVER  (13)    /*  SetPatch Version (---,V*.*)         [V4] */
  91. #define IDHW_AUDIOSYS     (14)    /*  Audio OS (AmigaOS, AHI, ...)        [V5] */
  92. #define IDHW_OSNR         (15)    /*  AmigaOS (2.04, 3.1, ...) */
  93. #define IDHW_VMMCHIPRAM   (16)    /*  VMM Chip RAM (*KB, *MB, *GB) */
  94. #define IDHW_VMMFASTRAM   (17)    /*  VMM Fast RAM (*KB, *MB, *GB) */
  95. #define IDHW_VMMRAM       (18)    /*  VMM Total RAM (*KB, *MB, *GB) */
  96. #define IDHW_PLNCHIPRAM   (19)    /*  Plain Chip RAM (*KB, *MB, *GB) */
  97. #define IDHW_PLNFASTRAM   (20)    /*  Plain Fast RAM (*KB, *MB, *GB) */
  98. #define IDHW_PLNRAM       (21)    /*  Plain Total RAM (*KB, *MB, *GB) */
  99. #define IDHW_VBR          (22)    /*  Vector Base Register                [V6] */
  100. #define IDHW_LASTALERT    (23)    /*  Last Alert code */
  101. #define IDHW_VBLANKFREQ   (24)    /*  VBlank Frequency */
  102. #define IDHW_POWERFREQ    (25)    /*  Power Frequency */
  103. #define IDHW_ECLOCK       (26)    /*  EClock */
  104. #define IDHW_SLOWRAM      (27)    /*  Plain Slow RAM (*KB, *MB, *GB) */
  105. #define IDHW_GARY         (28)    /*  Gary (---,Normal,...) */
  106. #define IDHW_RAMSEY       (29)    /*  RAMSEY (---,D,F) */
  107. #define IDHW_BATTCLOCK    (30)    /*  Battery Backed Up Clock (---,Found) */
  108. #define IDHW_CHUNKYPLANAR (31)    /*  Chunky To Planar Hardware (---,Found) [V7] */
  109. #define IDHW_POWERPC      (32)    /*  PowerPC present? (---,Found) */
  110. #define IDHW_PPCCLOCK     (33)    /*  PowerPC clock (unit MHz) */
  111. #define IDHW_CPUREV       (34)    /*  CPU revision                          [V8] */
  112. #define IDHW_CPUCLOCK     (35)    /*  CPU clock (unit MHz) */
  113. #define IDHW_FPUCLOCK     (36)    /*  FPU clock (unit MHz) */
  114. #define IDHW_RAMACCESS    (37)    /*  Main board RAM access time (unit ns) */
  115. #define IDHW_RAMWIDTH     (38)    /*  Main board RAM width (bit) */
  116. #define IDHW_RAMCAS       (39)    /*  Main board RAM CAS mode */
  117. #define IDHW_RAMBANDWIDTH (40)    /*  Main board RAM bandwidth */
  118. #define IDHW_TCPIP        (41)    /*  TCP/IP stack                          [V9] */
  119. #define IDHW_PPCOS        (42)    /*  PowerPC OS */
  120. #define IDHW_AGNUS        (43)    /*  Agnus chip revision */
  121. #define IDHW_AGNUSMODE    (44)    /*  Agnus chip mode */
  122. #define IDHW_DENISE       (45)    /*  Denise chip version                   [V10] */
  123. #define IDHW_DENISEREV    (46)    /*  Denise chip revision */
  124. #define IDHW_NUMBEROF     (47)    /*  Number of types, PRIVATE! */
  125.  
  126. /* ------------------------------------------------------------------------ *
  127. **  IDHW_SYSTEM numerical result codes
  128. */
  129. #define IDSYS_AMIGA1000   (0)     /*  Amiga 1000 */
  130. #define IDSYS_AMIGAOCS    (1)     /*  OCS Amiga 500/2000 */
  131. #define IDSYS_AMIGAECS    (2)     /*  ECS Amiga 500/2000 */
  132. #define IDSYS_AMIGA500    (3)     /*  Amiga 500 */
  133. #define IDSYS_AMIGA2000   (4)     /*  Amiga 2000 */
  134. #define IDSYS_AMIGA3000   (5)     /*  Amiga 3000 */
  135. #define IDSYS_CDTV        (6)     /*  CDTV */
  136. #define IDSYS_AMIGA600    (7)     /*  Amiga 600 */
  137. #define IDSYS_CD32        (8)     /*  CD32 */
  138. #define IDSYS_AMIGA1200   (9)     /*  Amiga 1200 */
  139. #define IDSYS_AMIGA4000   (10)    /*  Amiga 4000 */
  140. #define IDSYS_DRACO       (11)    /*  DraCo */
  141. #define IDSYS_UAE         (12)    /*  Ubiquitous Amiga Emulator */
  142. #define IDSYS_AMIGA4000T  (13)    /*  Amiga 4000 Tower */
  143.  
  144. /* ------------------------------------------------------------------------ *
  145. **  IDHW_CPU numerical result codes
  146. */
  147. #define IDCPU_68000     (0)       /*  68000 */
  148. #define IDCPU_68010     (1)       /*  68010 */
  149. #define IDCPU_68020     (2)       /*  68020 */
  150. #define IDCPU_68030     (3)       /*  68030 */
  151. #define IDCPU_68EC030   (4)       /*  68EC030 (without MMU) */
  152. #define IDCPU_68040     (5)       /*  68040 */
  153. #define IDCPU_68LC040   (6)       /*  68LC040 (without FPU) */
  154. #define IDCPU_68060     (7)       /*  68060 */
  155. #define IDCPU_68LC060   (8)       /*  68LC060 (without FPU) */
  156.  
  157. /* ------------------------------------------------------------------------ *
  158. **  IDHW_FPU numerical result codes
  159. */
  160. #define IDFPU_NONE      (0)       /*  no FPU */
  161. #define IDFPU_68881     (1)       /*  68881 */
  162. #define IDFPU_68882     (2)       /*  68882 */
  163. #define IDFPU_68040     (3)       /*  68040 */
  164. #define IDFPU_68060     (4)       /*  68060 */
  165.  
  166. /* ------------------------------------------------------------------------ *
  167. **  IDHW_MMU numerical result codes
  168. */
  169. #define IDMMU_NONE      (0)       /*  no MMU */
  170. #define IDMMU_68851     (1)       /*  68851 */
  171. #define IDMMU_68030     (2)       /*  68030 */
  172. #define IDMMU_68040     (3)       /*  68040 */
  173. #define IDMMU_68060     (4)       /*  68060 */
  174.  
  175. /* ------------------------------------------------------------------------ *
  176. **  IDHW_OSNR numerical result codes
  177. */
  178. #define IDOS_UNKNOWN    (0)       /*  <V36 or >V40 */
  179. #define IDOS_2_0        (1)       /*  OS2.0  (V36) */
  180. #define IDOS_2_04       (2)       /*  OS2.04 (V37) */
  181. #define IDOS_2_1        (3)       /*  OS2.1  (V38) */
  182. #define IDOS_3_0        (4)       /*  OS3.0  (V39) */
  183. #define IDOS_3_1        (5)       /*  OS3.1  (V40) */
  184.  
  185. /* ------------------------------------------------------------------------ *
  186. **  IDHW_CHIPSET numerical result codes
  187. */
  188. #define IDCS_OCS        (0)       /*  OCS */
  189. #define IDCS_ECS        (1)       /*  ECS */
  190. #define IDCS_AGA        (2)       /*  AGA */
  191. #define IDCS_ALTAIS     (3)       /*  DraCo Altais */
  192. #define IDCS_NECS       (4)       /* Nearly ECS (no HR-Agnus or HR-Denise) */
  193.  
  194. /* ------------------------------------------------------------------------ *
  195. **  IDHW_GFXSYS numerical result codes
  196. */
  197. #define IDGOS_AMIGAOS   (0)       /*  Plain AmigaOS */
  198. #define IDGOS_EGS       (1)       /*  EGS */
  199. #define IDGOS_RETINA    (2)       /*  Retina */
  200. #define IDGOS_GRAFFITI  (3)       /*  Graffiti */
  201. #define IDGOS_TIGA      (4)       /*  TIGA */
  202. #define IDGOS_PROBENCH  (5)       /*  Merlin ProBench */
  203. #define IDGOS_PICASSO   (6)       /*  Picasso */
  204. #define IDGOS_CGX       (7)       /*  CyberGraphX */
  205. #define IDGOS_CGX3      (8)       /*  CyberGraphX 3D */
  206. #define IDGOS_PICASSO96 (9)       /*  Picasso96 */
  207. #define IDGOS_CGX4      (10)      /*  CyberGraphX V4 */
  208.  
  209. /* ------------------------------------------------------------------------ *
  210. **  IDHW_AUDIOSYS numerical result codes
  211. */
  212. #define IDAOS_AMIGAOS    (0)      /*  Plain AmigaOS */
  213. #define IDAOS_MAESTIX    (1)      /*  MaestroPro driver */
  214. #define IDAOS_TOCCATA    (2)      /*  Toccata driver */
  215. #define IDAOS_PRELUDE    (3)      /*  Prelude driver */
  216. #define IDAOS_AHI        (4)      /*  AHI */
  217. #define IDAOS_MACROAUDIO (5)      /*  MacroAudio */
  218.  
  219. /* ------------------------------------------------------------------------ *
  220. **  IDHW_GARY numerical result codes
  221. */
  222. #define IDGRY_NONE      (0)       /*  No Gary available */
  223. #define IDGRY_NORMAL    (1)       /*  Normal Gary */
  224. #define IDGRY_ENHANCED  (2)       /*  Enhanced Gary */
  225.  
  226. /* ------------------------------------------------------------------------ *
  227. **  IDHW_RAMSEY numerical result codes
  228. */
  229. #define IDRSY_NONE      (0)       /*  No RamSey available */
  230. #define IDRSY_REVD      (1)       /*  RamSey Revision D */
  231. #define IDRSY_REVF      (2)       /*  RamSey Revision F */
  232.  
  233. /* ------------------------------------------------------------------------ *
  234. ** IDHW_POWERPC numerical result codes
  235. */
  236. #define IDPPC_NONE      (0)       /*  No PowerPC implemented */
  237. #define IDPPC_OTHER     (1)       /*  Another PowerPC */
  238. #define IDPPC_602       (2)       /*  602 */
  239. #define IDPPC_603       (3)       /*  603 */
  240. #define IDPPC_603E      (4)       /*  603e */
  241. #define IDPPC_603P      (5)       /*  603p */
  242. #define IDPPC_604       (6)       /*  604 */
  243. #define IDPPC_604E      (7)       /*  604e */
  244. #define IDPPC_620       (8)       /*  620 */
  245.  
  246. /* ------------------------------------------------------------------------ *
  247. ** IDHW_RAMCAS numerical result codes
  248. */
  249. #define IDCAS_NONE      (0)       /*  Not available */
  250. #define IDCAS_NORMAL    (1)       /*  Normal access */
  251. #define IDCAS_DOUBLE    (2)       /*  Double access */
  252.  
  253. /* ------------------------------------------------------------------------ *
  254. ** IDHW_TCPIP numerical result codes
  255. */
  256. #define IDTCP_NONE      (0)       /* Not available */
  257. #define IDTCP_AMITCP    (1)       /* AmiTCP */
  258. #define IDTCP_MIAMI     (2)       /* Miami */
  259. #define IDTCP_TERMITE   (3)       /* TermiteTCP */
  260. #define IDTCP_GENESIS   (4)       /* GENESiS */
  261.  
  262. /* ------------------------------------------------------------------------ *
  263. ** IDHW_PPCOS numerical result codes
  264. */
  265. #define IDPOS_NONE      (0)       /* None */
  266. #define IDPOS_POWERUP   (1)       /* PowerUP (Phase 5) */
  267. #define IDPOS_WARPOS    (2)       /* WarpOS (Haage&Partner) */
  268.  
  269. /* ------------------------------------------------------------------------ *
  270. ** IDHW_AGNUS numerical result codes
  271. */
  272. #define IDAG_NONE       (0)       /* None */
  273. #define IDAG_UNKNOWN    (1)       /* Unknown Agnus */
  274. #define IDAG_8361       (2)       /* Agnus 8361 */
  275. #define IDAG_8367       (3)       /* Agnus 8367 */
  276. #define IDAG_8370       (4)       /* Agnus 8370 */
  277. #define IDAG_8371       (5)       /* Agnus 8371 */
  278. #define IDAG_8372_R4    (6)       /* Agnus 8372 Rev. 1-4 */
  279. #define IDAG_8372_R5    (7)       /* Agnus 8372 Rev. 5 */
  280. #define IDAG_8374_R2    (8)       /* Alice 8374 Rev. 1-2 */
  281. #define IDAG_8374_R3    (9)       /* Alice 8374 Rev. 3-4 */
  282.  
  283. /* ------------------------------------------------------------------------ *
  284. ** IDHW_DENISE numerical result codes
  285. */
  286. #define IDDN_NONE       (0)       /* None */
  287. #define IDDN_UNKNOWN    (1)       /* Unknown Denise (new model?! :-) */
  288. #define IDDN_8362       (2)       /* Denise 8362 */
  289. #define IDDN_8373       (3)       /* Denise 8373 */
  290. #define IDDN_8364       (4)       /* Lisa 8364 */
  291.  
  292. /* ------------------------------------------------------------------------ *
  293. ** IDHW_AGNUSMODE numerical result codes
  294. */
  295. #define IDAM_NONE       (0)       /* None */
  296. #define IDAM_NTSC       (1)       /* NTSC Agnus */
  297. #define IDAM_PAL        (2)       /* PAL Agnus */
  298.  
  299. /* ------------------------------------------------------------------------ *
  300. ** IDTAG_ClassID numerical result codes
  301. */
  302. #define IDCID_UNKNOWN   (0)     /*  unknown functionality */
  303. #define IDCID_MISC      (1)     /*  miscellaneous expansion */
  304. #define IDCID_TURBO     (2)     /*  accelerator */
  305. #define IDCID_TURBORAM  (3)     /*  accelerator RAM */
  306. #define IDCID_TURBOHD   (4)     /*  accelerator + some HD controller */
  307. #define IDCID_TURBOIDE  (5)     /*  accelerator + AT-IDE controller */
  308. #define IDCID_TURBOSCSIHD (6)   /*  accelerator + SCSI host adapter */
  309. #define IDCID_NET       (7)     /*  some network */
  310. #define IDCID_ARCNET    (8)     /*  ArcNet */
  311. #define IDCID_ETHERNET  (9)     /*  Ethernet */
  312. #define IDCID_AUDIO     (10)    /*  audio */
  313. #define IDCID_VIDEO     (11)    /*  video (video digitizer etc) */
  314. #define IDCID_MULTIMEDIA (12)   /*  multimedia (audio, video, etc) */
  315. #define IDCID_DSP       (13)    /*  multi purpose DSP */
  316. #define IDCID_BUSBRIDGE (14)    /*  ISA bus bridge */
  317. #define IDCID_BRIDGE    (15)    /*  PC bridge */
  318. #define IDCID_EMULATOR  (16)    /*  some Emulator hardware */
  319. #define IDCID_MACEMU    (17)    /*  Macintosh emulator hardware */
  320. #define IDCID_ATARIEMU  (18)    /*  Atari emulator hardware */
  321. #define IDCID_GFX       (19)    /*  graphics (register) */
  322. #define IDCID_GFXRAM    (20)    /*  graphics (video RAM) */
  323. #define IDCID_HD        (21)    /*  some HD controller */
  324. #define IDCID_HDRAM     (22)    /*  some HD controller + RAM */
  325. #define IDCID_IDEHD     (23)    /*  IDE controller */
  326. #define IDCID_IDEHDRAM  (24)    /*  IDE controller + RAM */
  327. #define IDCID_SCSIHD    (25)    /*  SCSI host adapter */
  328. #define IDCID_RAMSCSIHD (26)    /*  SCSI host adapter + RAM */
  329. #define IDCID_CDROM     (27)    /*  CD-ROM interface */
  330. #define IDCID_MODEM     (28)    /*  internal modem */
  331. #define IDCID_ISDN      (29)    /*  internal ISDN terminal adapter */
  332. #define IDCID_MULTIIO   (30)    /*  multi I/O (serial + parallel) */
  333. #define IDCID_SERIAL    (31)    /*  multi serial (no parallel) */
  334. #define IDCID_PARALLEL  (32)    /*  multi parallel (no serial) */
  335. #define IDCID_SCANIF    (33)    /*  scanner interface */
  336. #define IDCID_TABLET    (34)    /*  drawing tablet interface */
  337. #define IDCID_RAM       (35)    /*  plain RAM expansion */
  338. #define IDCID_FLASHROM  (36)    /*  Flash ROM */
  339. #define IDCID_SCSIIDE   (37)    /*  combined SCSI/IDE controller */
  340. #define IDCID_RAMFPU    (38)    /*  RAM expansion + FPU */
  341. #define IDCID_GUESS     (39)    /*  name was unknown but guessed */
  342. #define IDCID_KICKSTART (40)    /*  KickStart */
  343. #define IDCID_RAM32     (41)    /*  32bit RAM expansion */
  344. #define IDCID_TURBOANDRAM (42)  /*  accelerator + RAM expansion */
  345. #define IDCID_ACCESS    (43)    /*  access control */
  346. #define IDCID_INTERFACE (44)    /*  some interface */
  347. #define IDCID_MFMHD     (45)    /*  MFM HD controller */
  348. #define IDCID_FLOPPY    (46)    /*  floppy disk controller */
  349.     /*  Be prepared to get other numbers as well. In this case you */
  350.     /*  should assume IDCID_MISC. */
  351.  
  352. /* ------------------------------------------------------------------------ *
  353. **  Error codes
  354. */
  355. /* Positive error codes are DOS errors! */
  356. #define IDERR_OKAY      (0)     /* No error */
  357. #define IDERR_NOLENGTH  (-1)    /* Buffer length is 0 ?? */
  358. #define IDERR_BADID     (-2)    /* Missing or bad board ID */
  359. #define IDERR_NOMEM     (-3)    /* Not enough memory */
  360. #define IDERR_NOFD      (-4)    /* No fitting FD file found */
  361. #define IDERR_OFFSET    (-5)    /* Function offset not found */
  362. #define IDERR_DONE      (-6)    /* Done with traversing (not an error) */
  363. #define IDERR_SECONDARY (-7)    /* Secondary expansion board (not an error) */
  364.  
  365. /* ------------------------------------------------------------------------ *
  366. **  That's all...
  367. */
  368.  
  369. #endif
  370.  
  371.